#include <fmt/color.h>
#include <fmt/format.h>
#include <fmt/ranges.h>

#include <iostream>

#define FnInInt inline int

#define MY_CLR_FG_BL_STRING "\033[0m\033[38;2;0;255;255m"
#define MY_CLR_FG_RESET_STRING "\033[0m"
#define MY_CLR_FG_BL (::std::cout << MY_CLR_FG_BL_STRING)
#define MY_CLR_FG_RESET (::std::cout << MY_CLR_FG_RESET_STRING)
#define MY_FLUSH_STD_OUT_ std::fflush(stdout)
#define MY_FLUSH_STD_OUT_

#define INFO(...) fmt::println(__VA_ARGS__);
#define INFOC(...)                                      \
    fmt::print(fmt::fg(fmt::color::aqua), __VA_ARGS__); \
    fmt::print("\n");

#define MY_ECHO_FUN_NAME                                                             \
    /* printf("Name: %s\n", __FUNCTION__); */                                        \
    /*::std::cout << "Name: " << __FUNCTION__ << " -------------" << ::std::endl; */ \
    ::fmt::print(fmt::fg(fmt::color::blue), "-------- Name: {}\n", __FUNCTION__);    \
    MY_FLUSH_STD_OUT_;
